//
//  ZSBaseTableViewController.swift
//  ZSWeibo
//
//  Created by apple on 15/11/23.
//  Copyright © 2015年 apple. All rights reserved.
//

import UIKit
//代理 ------ 5.实现代理
//class ZSBaseTableViewController: UITableViewController,ZSVistorViewDelegate {
class ZSBaseTableViewController: UITableViewController{
    //自定义一个BOLL类型的属性，用来记录用户是否已经登陆
    var userLogin = false
    override func loadView() {
        //如果已经登陆，加载本tableView，如果没有登陆，加载访客视图
        userLogin ? super.loadView():setUpVistorView()
    }
    
    func setUpVistorView()
    {
        //设置访客view
        view = vistorView
//代理 ------ 6.实现代理
        vistorView.delegate=self
        
        //在这里判断什么类型的控制器，根据不同的控制器，设置不同的访客视图类容
        //判断类型
        if self is ZSHomeTableViewController
        {
            //如果是首页，让转轮转起来
            vistorView.rotationAnimation()
            //监听应用进入和退出后台
            NSNotificationCenter.defaultCenter().addObserver(self, selector: "didEnterBackGround", name: UIApplicationDidEnterBackgroundNotification, object: nil)
            NSNotificationCenter.defaultCenter().addObserver(self, selector: "didBecomeActive", name: UIApplicationDidBecomeActiveNotification, object: nil)
            
        }
        else if self is ZSMessageTableViewController
        {
            //设置消息访客视图内容
        vistorView.setUpVistorView("visitordiscover_image_message", message: "登陆后，别人评论你的微博，发给你的消息，都会在这里收到通知")
            print("tititititit")
        }
        else if self is ZSDiscoverTableViewController
        {
            //设置发现访客视图类容
        vistorView.setUpVistorView("visitordiscover_image_message", message: "登陆后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
        }
        else if self is ZSProfileTableViewController
        {
            //设置我访客视图类容
        vistorView.setUpVistorView("visitordiscover_image_message", message: "登陆后，你的微博、相册、个人资料会显示在这里，展示给别人")
        }
        
        //设置导航栏按钮
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: "vistorViewRegisterClick")
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登陆", style: UIBarButtonItemStyle.Plain, target: self, action: "vistorViewLoginClick")
        
    }
    deinit
    {
        //在这个方法里面移除通知
        if self is ZSHomeTableViewController
        {
            NSNotificationCenter.defaultCenter().removeObserver(self)
        }
    }
    
    
    //进入后台会调用
    func didEnterBackGround()
    {
        //停止核心动画
        vistorView.pauseAnimation()
    }
    //进入前台会调用
    func didBecomeActive()
    {
        //恢复核心动画
        vistorView.resumeAnimation()
    }
    

    
    
    /// MARK - 懒加载访客视图
    private lazy var vistorView: ZSVistorView=ZSVistorView()
}

//switf 中可以在这里扩展控制器，并在扩展控制器中指定代理,并且在这里面实现代理方法
//extension 和 OC 中的 category 非常相似，好处是可以将协议的相关方法放到一起，方便统一管理代码
extension ZSBaseTableViewController: ZSVistorViewDelegate
{
    //代理 ------ 7.实现代理
    func vistorViewLoginClick()
    {//登陆按钮点击
        
    }
    func vistorViewRegisterClick()
    {//登陆按钮的点击
        
    }
}


